Keyboard interfaces are utilized to interconnect the keyboard of a computer, such as a personal computer (PC), and the central processing unit (CPU) of the computer itself. Typically, keyboard interfaces are designed for interfacing between one specific type of keyboard configuration and the computer. In the past, a separate micro-controller typically has been employed, along with selected gates for effecting this interface. A standard universal or multi-purpose keyboard interface for all types of keyboards, however, has not existed.
The standard desk-top DOS computer uses a serial keyboard having a large number of dedicated keys on it. Thus, the serial signals supplied by this keyboard are interfaced with the computer by a suitable keyboard interface system designed to operate with the serial output of the keyboard. The serial keyboard interface typically used implements a micro-controller to create a data stream and control the interrupting mechanism. Portable computers, however, typically use a keyboard with fewer keys than the desk-top serial keyboard. To permit all of the functions and other alphanumeric signals to be obtained from such a keyboard having a reduced number of keys, a matrix keyboard system is employed. In a matrix keyboard, simultaneous operation of various key combinations provides a unique set of signals, which then are combined to produce the desired operating signals to the CPU of the computer. Keyboard interfaces designed to operate with a matrix keyboard necessarily have been designed to operate differently from serial keyboard interfaces. In addition, bus interfaces to a micro-controller also have been employed as the interface between a keyboard and the CPU of the computer. In all cases, it is necessary to provide an interface which is DOS compatible from a BIOS/DIOS programmer's point of view.
Use of a separate micro-controller in the keyboard interface, along with the necessary gates to effect the interface, requires a relatively large size die, and is relatively expensive. Such expense is particularly significant when the requirement for a separate or different keyboard interface for matrix keyboards, as well as earlier IBM PC/AT computers is considered. Manufacturers of keyboard interfaces have been required to design and stock different interfaces for each of these applications; and computer manufacturers also have been required to use different keyboard interfaces for different types of personal computers, as described above.
It is desirable to provide a single, multi-function keyboard interface which may be used to connect a CPU to a standard serial keyboard, a matrix keyboard, or a bus interface to a micro controller.